home *** CD-ROM | disk | FTP | other *** search
/ The Atari Compendium / The Atari Compendium (Toad Computers) (1994).iso / files / prgtools / langs / c68_445b.zoo / inc / osbind.h < prev   
Encoding:
C/C++ Source or Header  |  1994-10-21  |  12.6 KB  |  268 lines

  1. /*
  2.  *    osbind.h
  3.  */
  4.  
  5. #ifndef _OSBIND_H
  6. #define _OSBIND_H
  7.  
  8. #ifndef _COMPILER_H
  9. #include <compiler.h>
  10. #endif
  11.  
  12. #ifdef __cplusplus
  13. extern "C" {
  14. #endif
  15.  
  16. #ifndef _OSTRUCT_H
  17. #include <ostruct.h>
  18. #endif
  19.  
  20.  
  21. #if defined(__C68__) || defined(__SOZOBON__)
  22.  
  23. #ifdef __C68__
  24.  
  25. #define gemdos    _trap_1_
  26. #define xbios    _trap_14_
  27. #define bios    _trap_13_
  28.  
  29. #if !defined(__STDC__) && !defined(__MSHORT__)
  30. #error does not work with -trad and -mlong
  31. #endif
  32.  
  33. __EXTERN long _trap_1_w        __PROTO((short));
  34. __EXTERN long _trap_1_ww    __PROTO((short,short));
  35. __EXTERN long _trap_1_wl    __PROTO((short,long));
  36. __EXTERN long _trap_1_wlw    __PROTO((short,long,short));
  37. __EXTERN long _trap_1_wwll    __PROTO((short,short,long,long));
  38. __EXTERN long _trap_1_wlww    __PROTO((short,long,short,short));
  39. __EXTERN long _trap_1_www    __PROTO((short,short,short));
  40. __EXTERN long _trap_1_wll    __PROTO((short,long,long));
  41. __EXTERN long _trap_1_wwlll    __PROTO((short,short,long,long,long));
  42. __EXTERN long _trap_1_wwwll    __PROTO((short,short,short,long,long));
  43. __EXTERN long _trap_13_wl    __PROTO((short,long));
  44. __EXTERN long _trap_13_w    __PROTO((short));
  45. __EXTERN long _trap_13_ww    __PROTO((short,short));
  46. __EXTERN long _trap_13_www    __PROTO((short,short,short));
  47. __EXTERN long _trap_13_wwlwww    __PROTO((short,short,long,short,short,short));
  48. __EXTERN long _trap_13_wwl    __PROTO((short,short,long));
  49. __EXTERN long _trap_14_wwl    __PROTO((short,short,long));
  50. __EXTERN long _trap_14_wwll    __PROTO((short,short,long,long));
  51. __EXTERN long _trap_14_ww    __PROTO((short,short));
  52. __EXTERN long _trap_14_w    __PROTO((short));
  53. __EXTERN long _trap_14_wllw    __PROTO((short,long,long,short));
  54. __EXTERN long _trap_14_wl    __PROTO((short,long));
  55. __EXTERN long _trap_14_www    __PROTO((short,short,short));
  56. __EXTERN long _trap_14_wllwwwww __PROTO((short,long,long,short,short,short,short,short));
  57. __EXTERN long _trap_14_wllwwwwlw __PROTO((short,long,long,short,short,short,short,long,short));
  58. __EXTERN long _trap_14_wllwwwwwlw __PROTO((short,long,long,short,short,short,short,short,long,short));
  59. __EXTERN long _trap_14_wwwwwww    __PROTO((short,short,short,short,short,short,short));
  60. __EXTERN long _trap_14_wlll    __PROTO((short,long,long,long));
  61. __EXTERN long _trap_14_wllww    __PROTO((short,long,long,short,short));
  62. __EXTERN long _trap_14_wwwwl    __PROTO((short,short,short,short,long));
  63. __EXTERN long _trap_14_wwwl    __PROTO((short,short,short,long));
  64. __EXTERN long _trap_14_wlwlw    __PROTO((short,long,short,long,short));
  65.  
  66. #else
  67.  
  68. #define _trap_1_w        gemdos
  69. #define _trap_1_ww        gemdos
  70. #define _trap_1_wl        gemdos
  71. #define _trap_1_wlw        gemdos
  72. #define _trap_1_wwll        gemdos
  73. #define _trap_1_wlww        gemdos
  74. #define _trap_1_www        gemdos
  75. #define _trap_1_wll        gemdos
  76. #define _trap_1_wwlll        gemdos
  77. #define _trap_1_wwwll        gemdos
  78. #define _trap_13_wl        bios
  79. #define _trap_13_w        bios
  80. #define _trap_13_ww        bios
  81. #define _trap_13_www        bios
  82. #define _trap_13_wwlwww        bios
  83. #define _trap_13_wwl        bios
  84. #define _trap_14_wwl        xbios
  85. #define _trap_14_wwll        xbios
  86. #define _trap_14_ww        xbios
  87. #define _trap_14_w        xbios
  88. #define _trap_14_wllw        xbios
  89. #define _trap_14_wl        xbios
  90. #define _trap_14_www        xbios
  91. #define _trap_14_wllwwwww    xbios
  92. #define _trap_14_wllwwwwlw    xbios
  93. #define _trap_14_wllwwwwwlw    xbios
  94. #define _trap_14_wwwwwww    xbios
  95. #define _trap_14_wlll        xbios
  96. #define _trap_14_wllww        xbios
  97. #define _trap_14_wwwwl        xbios
  98. #define _trap_14_wwwl        xbios
  99. #define _trap_14_wlwlw        xbios
  100.  
  101. #endif
  102.  
  103. __EXTERN long gemdos    __PROTO((short,...));
  104. __EXTERN long xbios    __PROTO((short,...));
  105. __EXTERN long bios    __PROTO((short,...));
  106.  
  107.  
  108. /*
  109.  *    GEMDOS    (trap1)
  110.  */
  111. #define Pterm0()    (void)_trap_1_w((short)0x00)
  112. #define Cconin()    _trap_1_w((short)0x01)
  113. #define Cconout(c)    (void)_trap_1_ww((short)0x02,(short)(c))
  114. #define Cauxin()    (short)_trap_1_w((short)0x03)
  115. #define Cauxout(c)    (void)_trap_1_ww((short)0x04,(short)(c))
  116. #define Cprnout(c)    (short)_trap_1_ww((short)0x05,(short)(c))
  117. #define Crawio(w)    _trap_1_ww((short)0x06,(short)(w))
  118. #define Crawcin()    _trap_1_w((short)0x07)
  119. #define Cnecin()    _trap_1_w((short)0x08)
  120. #define Cconws(s)    (short)_trap_1_wl((short)0x09,(long)(s))
  121. #define Cconrs(buf)    (void)_trap_1_wl((short)0x0A,(long)(buf))
  122. #define Cconis()    (short)_trap_1_w((short)0x0B)
  123. #define Dsetdrv(d)    _trap_1_ww((short)0x0E,(short)(d))
  124. #define Cconos()    (short)_trap_1_w((short)0x10)
  125. #define Cprnos()    (short)_trap_1_w((short)0x11)
  126. #define Cauxis()    (short)_trap_1_w((short)0x12)
  127. #define Cauxos()    (short)_trap_1_w((short)0x13)
  128. #define Dgetdrv()    (short)_trap_1_w((short)0x19)
  129. #define Fsetdta(dta)    (void)_trap_1_wl((short)0x1A,(long)(dta))
  130. #define Super(ptr)    _trap_1_wl((short)0x20,(long)(ptr))
  131. #define Tgetdate()    (short)_trap_1_w((short)0x2A)
  132. #define Tsetdate(date)    (short)_trap_1_ww((short)0x2B,(short)(date))
  133. #define Tgettime()    (short)_trap_1_w((short)0x2C)
  134. #define Tsettime(time)    (short)_trap_1_ww((short)0x2D,(short)(time))
  135. #define Fgetdta()    (_DTA*)_trap_1_w((short)0x2F)
  136. #define Sversion()    (short)_trap_1_w((short)0x30)
  137. #define Ptermres(sv,rv)    (void)_trap_1_wlw((short)0x31,(long)(sv),(short)(rv))
  138. #define Dfree(buf,d)    (short)_trap_1_wlw((short)0x36,(long)(buf),(short)(d))
  139. #define Dcreate(path)    (short)_trap_1_wl((short)0x39,(long)(path))
  140. #define Ddelete(path)    (short)_trap_1_wl((short)0x3A,(long)(path))
  141. #define Dsetpath(path)    (short)_trap_1_wl((short)0x3B,(long)(path))
  142. #define Fcreate(fn,md)    (short)_trap_1_wlw((short)0x3C,(long)(fn),(short)(md))
  143. #define Fopen(fn,md)    (short)_trap_1_wlw((short)0x3D,(long)(fn),(short)(md))
  144. #define Fclose(h)    (short)_trap_1_ww((short)0x3E,(short)(h))
  145. #define Fread(h,ct,bf)    _trap_1_wwll((short)0x3F,(short)(h),(long)(ct),(long)(bf))
  146. #define Fwrite(h,ct,bf)    _trap_1_wwll((short)0x40,(short)(h),(long)(ct),(long)(bf))
  147. #define Fdelete(fn)    (short)_trap_1_wl((short)0x41,(long)(fn))
  148. #define Fseek(off,h,md)    _trap_1_wlww((short)0x42,(long)off,(short)(h),(short)(md))
  149. #define Fattrib(f,w,a)    (short)_trap_1_wlww((short)0x43,(long)(f),(short)(w),(short)(a))
  150. #define Fdup(h)        (short)_trap_1_ww((short)0x45,(short)(h))
  151. #define Fforce(hs,hn)    (short)_trap_1_www((short)0x46,(short)(hs),(short)(hn))
  152. #define Dgetpath(buf,d)    (short)_trap_1_wlw((short)0x47,(long)(buf),(short)(d))
  153. #define Malloc(size)    (long)_trap_1_wl((short)0x48,(long)(size))
  154. #define Mfree(ptr)    (short)_trap_1_wl((short)0x49,(long)(ptr))
  155. #define Mshrink(ptr,sz)    (short)_trap_1_wwll((short)0x4A,(short)0,(long)(ptr),(long)(sz))
  156. #define Pexec(md,p,t,e)    _trap_1_wwlll((short)0x4B,(short)(md),(long)(p),(long)(t),(long)(e))
  157. #define Pterm(rv)    (void)_trap_1_ww((short)0x4C,(short)(rv))
  158. #define Fsfirst(sp,at)    (short)_trap_1_wlw((short)0x4E,(long)(sp),(short)(at))
  159. #define Fsnext()    (short)_trap_1_w((short)0x4F)
  160. #define Frename(z,o,n)    (short)_trap_1_wwll((short)0x56,(short)(z),(long)(o),(long)(n))
  161. #define Fdatime(t,h,w)    _trap_1_wlww((short)0x57,(long)(t),(short)(h),(short)(w))
  162.  
  163. /* GEMDOS extensions */
  164. #define Maddalt(st,sz)    _trap_1_wll((short)0x14,(long)(st),(long)(sz))
  165. #define Mxalloc(am,md)    _trap_1_wlw((short)0x44,(long)(am),(short)(md))
  166.  
  167. /* Network Gemdos Extension */
  168. #define Flock(h,md,s,l)    _trap_1_wwwll((short)0x5C,(short)(h),(short)(md),(long)(s),(long)(l))
  169.  
  170.  
  171. /*
  172.  *    BIOS    (trap13)
  173.  */
  174. #define Getmpb(mpb)        (void)_trap_13_wl((short)0x0,(long)(mpb))
  175. #define Bconstat(dev)        (short)_trap_13_ww((short)0x1,(short)(dev))
  176. #define Bconin(dev)        _trap_13_ww((short)0x2,(short)(dev))
  177. #define Bconout(dev,c)        _trap_13_www((short)0x3,(short)(dev),(short)(c))
  178. #define Rwabs(wflg,buf,n,sec,d)    _trap_13_wwlwww((short)0x4,(short)(wflg),(long)(buf),(short)(n),(short)(sec),(short)(d))
  179. #define Setexc(vnum,vptr)    (void(*))_trap_13_wwl((short)0x5,(short)(vnum),(long)(vptr))
  180. #define Tickcal()        _trap_13_w((short)0x6)
  181. #define Getbpb(d)        (_BPB*)_trap_13_ww((short)0x7,(short)(d))
  182. #define Bcostat(dev)        _trap_13_ww((short)0x8,(short)(dev))
  183. #define Mediach(d)        _trap_13_ww((short)0x9,(short)(d))
  184. #define Drvmap()        _trap_13_w((short)0xA)
  185. #define Kbshift(mode)        _trap_13_ww((short)0xB,(short)(mode))
  186. #define Getshift()        Kbshift(-1)
  187.  
  188.  
  189. /*
  190.  *        XBIOS    (trap14)
  191.  */
  192. #define Initmous(type,param,vptr)    (void)_trap_14_wwll((short)0x0,(short)(type),(long)(param),(long)(vptr))
  193. #define Ssbrk(amnt)            (void*)_trap_14_ww((short)0x1,(short)(amnt))
  194. #define Physbase()            (void*)_trap_14_w((short)0x2)
  195. #define Logbase()            (void*)_trap_14_w((short)0x3)
  196. #define Getrez()            (short)_trap_14_w((short)0x4)
  197. #define Setscreen(lscrn,pscrn,rez)    (void)_trap_14_wllw((short)0x5,(long)(lscrn),(long)pscrn,(short)(rez))
  198. #define Setpalette(palptr)        (void)_trap_14_wl((short)0x6,(long)(palptr))
  199. #define Setcolor(colornum,mixture)    (short)_trap_14_www((short)0x7,(short)(colornum),(short)(mixture))
  200. #define Floprd(buf,x,d,sect,trk,side,n)    (short)_trap_14_wllwwwww((short)0x8,(long)(buf),(long)(x),(short)(d),(short)(sect),(short)(trk),(short)(side),(short)(n))
  201. #define Flopwr(buf,x,d,sect,trk,side,n)    (short)_trap_14_wllwwwww((short)0x9,(long)(buf),(long)(x),(short)(d),(short)(sect),(short)(trk),(short)(side),(short)(n))
  202. #define Flopfmt(b,x,d,spt,trk,sd,i,m,v) (short)_trap_14_wllwwwwwlw((short)0xA,(long)(b),(long)(x),(short)(d),(short)(spt),(short)(trk),(short)(sd),(short)(i),(long)(m),(short)(v))
  203. #define Midiws(cnt,ptr)            (void)_trap_14_wwl((short)0xC,(short)(cnt),(long)(ptr))
  204. #define Mfpint(vnum,vptr)        (void)_trap_14_wwl((short)0xD,(short)(vnum),(long)(vptr))
  205. #define Iorec(iodev)            (_IOREC*)_trap_14_ww((short)0xE,(short)(iodev))
  206. #define Rsconf(baud,flow,uc,rs,ts,sc)    _trap_14_wwwwwww((short)0xF,(short)(baud),(short)(flow),(short)(uc),(short)(rs),(short)(ts),(short)(sc))
  207. #define Keytbl(nrml,shft,caps)        (_KEYTAB*)_trap_14_wlll((short)0x10,(long)(nrml),(long)(shft),(long)(caps))
  208. #define Random()            _trap_14_w((short)0x11)
  209. #define Protobt(buf,serial,dsktyp,exec) (void)_trap_14_wllww((short)0x12,(long)(buf),(long)(serial),(short)(dsktyp),(short)(exec))
  210. #define Flopver(buf,x,d,sect,trk,sd,n)    (short)_trap_14_wllwwwww((short)0x13,(long)(buf),(long)(x),(short)(d),(short)(sect),(short)(trk),(short)(sd),(short)(n))
  211. #define Scrdmp()            (void)_trap_14_w((short)0x14)
  212. #define Cursconf(func,rate)        (short)_trap_14_www((short)0x15,(short)(func),(short)(rate))
  213. #define Settime(time)            (void)_trap_14_wl((short)0x16,(long)(time))
  214. #define Gettime()            (long)_trap_14_w((short)0x17)
  215. #define Bioskeys()            (void)_trap_14_w((short)0x18)
  216. #define Ikbdws(len_minus1,ptr)        (void)_trap_14_wwl((short)0x19,(short)(len_minus1),(long)(ptr))
  217. #define Jdisint(vnum)            (void)_trap_14_ww((short)0x1A,(short)(vnum))
  218. #define Jenabint(vnum)            (void)_trap_14_ww((short)0x1B,(short)(vnum))
  219. #define Giaccess(data,reg)        (char)_trap_14_www((short)0x1C,(char)(data),(short)(reg))
  220. #define Offgibit(ormask)        (void)_trap_14_ww((short)0x1D,(short)(ormask))
  221. #define Ongibit(andmask)        (void)_trap_14_ww((short)0x1E,(short)(andmask))
  222. #define Xbtimer(timer,ctrl,data,vnum)    (void)_trap_14_wwwwl((short)0x1F,(short)(timer),(short)(ctrl),(short)(data),(long)(vnum))
  223. #define Dosound(ptr)            (void)_trap_14_wl((short)0x20,(long)(ptr))
  224. #define Setprt(config)            (short)_trap_14_ww((short)0x21,(short)(config))
  225. #define Kbdvbase()            (_KBDVECS*)_trap_14_w((short)0x22)
  226. #define Kbrate(delay,reprate)        (short)_trap_14_www((short)0x23,(short)(delay),(short)(reprate))
  227. #define Prtblk(pblkptr)            (void)_trap_14_wl((short)0x24,(long)(pblkptr))
  228. #define Vsync()                (void)_trap_14_w((short)0x25)
  229. #define Supexec(funcptr)        (void)_trap_14_wl((short)0x26,(long)(funcptr))
  230. #define Puntaes()            (void)_trap_14_w((short)0x27)
  231. #define Floprate(drive,seekrate)    (short)_trap_14_www((short)0x29,(short)(drive),(short)(seekrate))
  232. #define Blitmode(mode)            (void)_trap_14_ww((short)0x40,(short)(mode))
  233.  
  234. /* TOS030 XBios */
  235. #define DMAread(sec,cnt,buf,dev)    _trap_14_wlwlw((short)0x2A,(long)(sec),(short)(cnt),(long)(buf),(short)(dev))
  236. #define DMAwrite(sec,cnt,buf,dev)    _trap_14_wlwlw((short)0x2B,(long)(sec),(short)(cnt),(long)(buf),(short)(dev))
  237. #define Bconmap(devno)            _trap_14_ww((short)0x2C,(short)(devno))
  238. #define NMVaccess(op,start,cnt,buf)    (short)_trap_14_wwwwl((short)0x2E,(short)(op),(short)(start),(short)(cnt),(long)(buf))
  239. #define EsetShift(shftMode)        (void)_trap_14_ww((short)0x50,(short)(shftMode))
  240. #define EgetShift()            (short)_trap_14_w((short)0x51)
  241. #define Esetbank(bankNum)        (short)_trap_14_ww((short)0x52,(short)(bankNum))
  242. #define EsetColor(colorNum,color)    (short)_trap_14_www((short)0x53,(short)(colorNum),(short)(color))
  243. #define EsetPalette(colNum,cnt,palPtr)    (void)_trap_14_wwwl((short)0x54,(short)(colNum),(short)(cnt),(long)(palPtr))
  244. #define EgetPalette(colNum,cnt,palPtr)    (void)_trap_14_wwwl((short)0x55,(short)(colNum),(short)(cnt),(long)(palPtr))
  245. #define EsetGray(switch)        (short)_trap_14_ww((short)0x56,(short)(switch))
  246. #define EsetSmear(switch)        (short)_trap_14_ww((short)0x57,(short)(switch))
  247.  
  248. /* ST BOOK Xbios */
  249. #define    Waketime(w_date,w_time)        (void)_trap_14_www((short)0x2F,(unsigned short)(w_date),(unsigned short)(w_time))
  250.  
  251.  
  252. #else /* !__C68__ */
  253.  
  254. /* Support for GCC, Pure C/Turbo C and Lattice C
  255.  * has been removed - if you've got one of these
  256.  * compilers, use the  original  osbind.h to add
  257.  * the needed bits...
  258.  */
  259.  
  260. #endif /* __C68__ */
  261.  
  262.  
  263. #ifdef __cplusplus
  264. }
  265. #endif
  266.  
  267. #endif /* _OSBIND_H */
  268.